Add optional week-aligned calendar view with selectable week start (#538)#1330
Open
TemujinCalidius wants to merge 2 commits into
Open
Add optional week-aligned calendar view with selectable week start (#538)#1330TemujinCalidius wants to merge 2 commits into
TemujinCalidius wants to merge 2 commits into
Conversation
Adds an opt-in weekly view for the mini calendar that shows one week at a time, aligned to a user-chosen first weekday (System / Sunday / Monday). The scrolling day dial remains the default. A new "Weekly view" toggle in Calendar settings switches to a fixed 7-day strip with ‹ › chevrons; the scroll wheel and chevrons page a whole week. A "Week starts on" picker is shown only when weekly view is enabled. - New WeekStartDay enum and calendarWeekView / weekStartDay defaults - WeekStripPicker view; CalendarView switches dial <-> week on the toggle - Option labels keyed by English text so untranslated locales fall back to readable English instead of raw keys - Tidy the scroll-wheel NSEvent monitor lifecycle in both pickers (store the token, remove it on disappear) Relates to TheBoredTeam#538 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
|
Screen Recording - https://makertube.net/w/nycMp9YcooEpYENK6r8U64 |
Member
|
Can you modify it so that scrolling still changes the selected date without changing the week alignment until the user scrolls outside of the bounds of the current window, and then it changes? (It would also be good to animate this transition, just for scrolling) |
Alexander5015
requested changes
Jun 17, 2026
…week scroll Maintainer review on the week-aligned calendar: - Week starts on: offer all seven weekdays plus a "System Setting (X)" option that shows the resolved system first weekday in parentheses, mirroring the macOS Calendar app. Weekday names now come from Calendar.weekdaySymbols (Apple-provided localization) instead of custom "Monday"/"Sunday" strings. - Week strip scrolling now moves the selection one day at a time and keeps the week aligned until the selection leaves it; crossing the boundary slides the whole week. Reuses the app's existing withAnimation (no new animation): the highlight glides between days, and the week flips with a contained .push transition clipped to the calendar column. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
|
Thanks for the review, @Alexander5015! Pushed updates addressing all three points:
Updated screen recording: https://makertube.net/w/t2vtaqLEHuuSJNYF68F69p Ready for another look whenever you have time 🙏 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an opt-in weekly view for the mini calendar that shows one week at a time, aligned to a user-chosen first weekday — addressing the request in #538 to control which day the week starts on.
The existing scrolling day dial remains the default, so current behaviour is unchanged unless the user opts in.
What's new
‹ ›chevrons; the scroll wheel and chevrons page a whole week.Implementation notes
WeekStartDayenum (firstWeekdayresolved viaCalendar.firstWeekday;systemfollows the OS) and two defaults:calendarWeekView(Bool, default false) andweekStartDay(default.system).WeekStripPickerview;CalendarViewswitches between the original dial and the week strip on the toggle. The dial code path is unchanged.Calendar.veryShortWeekdaySymbols; week boundaries useCalendar.dateInterval(of: .weekOfYear:)so they honourfirstWeekdayand are DST-safe.NSEventlocal-monitor lifecycle in both pickers (store the token, remove it on.onDisappear) — the dial previously added a monitor on every appear without removing it.Testing
xcodebuild, Debug, macOS).Closes #538